package main

import (
	"fmt"
)

func main() {
	/* 这是我的第一个简单的程序 */
	/* fmt.Println("Hello, World!")
	fmt.Println("我是test")

	type BuiltinFunction func()
	type Builtin struct {
		Fn  BuiltinFunction
		Fns BuiltinFunction
	}
	mapArr := map[string]*Builtin{
		"print": &Builtin{
			Fn: func() {
				fmt.Println("print")
			},
		},
	}
	// mapArr["print"].Fn()
	if builtins, ok := mapArr["print"]; ok {
		// fmt.Println(builtins)
		builtins.Fn()
	}
	s := map[string]int{
		"a": 1,
		"b": 2,
		".": 3,
	}
	fmt.Println(s["."]) */

	envi := envs.NewEnvironment()
	envi.Set("name", envs.Symbol{
		Value: "raymond",
		Type:  "symbol",
	})
	name := envi.Get("name")
	fmt.Println("name:", name)
}
